package com.xinqi.modules.sys.appversion.service;

import com.xinqi.common.base.response.PageInfo;
import com.xinqi.common.base.response.Param;
import com.xinqi.modules.sys.appversion.dto.req.AppVersionCreateDTO;
import com.xinqi.modules.sys.appversion.dto.req.AppVersionDeleteDTO;
import com.xinqi.modules.sys.appversion.dto.req.AppVersionHtmlQueryDTO;
import com.xinqi.modules.sys.appversion.dto.req.AppVersionLatestQueryDTO;
import com.xinqi.modules.sys.appversion.dto.req.AppVersionQueryDTO;
import com.xinqi.modules.sys.appversion.dto.req.AppVersionUpdateDTO;
import com.xinqi.modules.sys.appversion.dto.rsp.AppVersionResultDTO;

import java.util.List;

/**
 * 版本记录列表服务层
 *
 * @author: linkai
 * @date: 2023/04/27
 */
public interface AppVersionService {
    /**
     * 分页查询 版本记录列表数据
     */
    PageInfo<AppVersionResultDTO> page(Param pageable, AppVersionQueryDTO query);

    /**
     * 分页查询 版本记录列表数据
     */
    PageInfo<AppVersionResultDTO> page(Param pageable, AppVersionHtmlQueryDTO query);

    /**
     * 查询 版本记录列表数据
     */
    List<AppVersionResultDTO> find(AppVersionQueryDTO query);

    /**
     * 根据id查询 版本记录列表数据
     */
    AppVersionResultDTO findById(Long id);

    /**
     * 新增 版本记录列表数据
     */
    Long insert(AppVersionCreateDTO dto);

    /**
     * 根据id修改 版本记录列表数据
     */
    Boolean updateById(AppVersionUpdateDTO dto);

    /**
     * 根据id删除 版本记录列表数据
     */
    Boolean deleteById(Long id);

    /**
     * 根据id删除 版本记录列表数据
     */
    Boolean deleteById(AppVersionDeleteDTO dto);

    AppVersionResultDTO latestVersion(AppVersionLatestQueryDTO query);

}
